﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using INdT_Core.Entity;
using Microsoft.SharePoint;

namespace INdT_Core.DALC
{
    public class OrganogramaDalc : BaseDalc
    {

        public List<Organograma> GetAll()
        {
            List<Organograma> lista = new List<Organograma>();
            SPList listOrganograma = SPContext.Current.Web.Lists["Organograma"];
            foreach(SPListItem item in listOrganograma.Items)
            {
                lista.Add(ConvertToItem(item));
            }
            return lista;
        }


        public Organograma GetOrganogramaItemByIdentificador(int identificador)
        {
            SPList listOrganograma = SPContext.Current.Web.Lists["Organograma"];
            SPQuery query = new SPQuery();
            query.Query = string.Format(@"<Where>
                                                <Eq>
                                                    <FieldRef Name=""Idenficador""></FieldRef>
                                                    <Value Type=""Number"">{0}</Value>
                                                </Eq>
                                        </Where>", identificador.ToString());

            SPListItemCollection values = listOrganograma.GetItems(query);
            if ((values != null) && (values.Count > 0))
            {
                return ConvertToItem(values[0]);
            }
            return null;
        }

        private Organograma ConvertToItem(SPListItem item)
        {
            Organograma organograma = new Organograma();
            organograma.Identificador = GetFieldAsInt(item, "Identificador");
            organograma.Colaborador = new Pessoa();
            organograma.Colaborador.Id = GetFieldAsLookupId(item, "Pessoa");
            organograma.Colaborador.Nome = GetFieldAsLookupValue(item, "Pessoa");
            organograma.Departamento = GetFieldAsString(item, "Departamento");            
            return organograma;
        }
    }
}
